1. Field of the Invention
This invention relates to the docking, running and launching of applications in an environment.
2. Background
OpenStep(trademark) is an open, high-volume portable standard for object-oriented computing. It provides a standard application programming interface (API). The OpenStep specification is based on NeXTStep(trademark). NeXTStep is an object-oriented operating system of NeXT Computer, Inc. (OpenStep and NeXTStep are trademarks or registered trademarks of NeXT Computer, Inc.
An implementation of OpenStep is available from Sun Microsystems, Inc. that runs on top of OpenWindows(trademark). OpenWindows is a windowing system that is based on the X11 windowing specification. OpenWindows runs on Solaris(trademark), an operating system available from Sun Microsystems, Inc. (Sun Microsystems, Inc., OpenWindows, and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and certain other countries.)
OpenStep provides an environment for developing applications. Applications written using OpenStep are referred to as OpenStep applications. Applications that are not written using the OpenStep API are referred to as non-OpenStep applications. Examples of non-OpenStep applications include OpenLook Desktop applications, Motif applications and X applications.
The OpenStep environment includes a workspace application called the Dock. The Dock facilitates the use of OpenStep applications. The Dock uses a region of the workspace screen (e.g., the right-hand side of the screen). From the user standpoint, the Dock consists of a set of icons that are displayed on the screen (e.g., icons are displayed vertically along the right-hand edge of the screen). These icons represent OpenStep applications.
The icon consists of an image that is recognizable to the user as being associated with the corresponding application. The icon further contains an indicator (e.g., a set of three dots) that are used to identify whether the corresponding application is currently running. The user can launch a docked OpenStep application by selecting (e.g., double-clicking a button on a pointing device such as a mouse) the corresponding icon in the Dock. When an application is launched, the Dock removes the indicator from the icon. This signifies that the docked application has been launched.
An OpenStep application is added to the Dock by dragging the icon that represents an OpenStep application to the region of the screen used by the Dock application. This process of adding an OpenStep application to the Dock is referred to as xe2x80x9cdockingxe2x80x9d the application. Similarly, an application can be removed from the Dock by dragging the application""s icon out of the region of the screen used by the Dock.
The Dock application identifies and maintains certain defaults or information about a xe2x80x9cdockedxe2x80x9d OpenStep application. For example, the Dock maintains path information that is used to locate a docked application. The path information identifies a directory that contains the OpenStep application. The directory contains an executable file for the application. In addition, the directory contains resources (e.g., images, sounds, localization of files and Interface Builder files) needed by the application. When a docked application is launched, the Dock locates the docked application""s corresponding application and launches the application""s executable contained in this directory.
It is only possible to dock OpenStep applications. It would be beneficial to be able to dock and launch non-OpenStep applications. For example, it would be beneficial to dock OpenLook Desktop applications, X11 applications, and shell scripts. It would be beneficial to be able to associate an icon with a non-OpenStep application in the Dock and to modify the icon to indicate the state of the application.
Further, it is not possible for the Dock to understand command line arguments. It would be beneficial to be able to associated command line arguments with an application such that these arguments are accessed when the application is launched.
The capability to dock, launch and run an application in an environment is extended to a foreign application. The same xe2x80x9clook and feelxe2x80x9d of environment applications is given to non-environment, or foreign, applications. A wrapper application is associated with a foreign application and manages the foreign application. It communicates with an environment""s docking application regarding the status of the foreign application.
From the user""s viewpoint, a foreign application has the same xe2x80x9clook and feelxe2x80x9d as an environment application. Like environment applications, the user drags the foreign application""s icon to a docking region to dock the application. A docked application (foreign or environment) is launched by a user by selecting the docked applications icon, or tile. A menu window is associated with the docked application that provides the user with a selection for hiding or terminating the application. The docked application tile is modified to provide information on the status of the docked application.
When the foreign application is to be launched, path information is used to locate the wrapper application and the foreign application. The wrapper application is launched. The wrapper application launches the foreign application. The tile associated with the foreign application is modified (e.g., ellipsis removed and tile grayed) to illustrate that the foreign application has been launched. The wrapper application creates a menu for the foreign application that includes selections for manipulating the application""s windows and execution.
Once the foreign application is launched, the wrapper application waits for a notification regarding the status of the application. The foreign application""s status can change, for example, when the user selects an operation from the foreign application""s menu created by the wrapper application. The wrapper application processes the notification.
When the user selects a xe2x80x9cQuitxe2x80x9d operation, the wrapper application terminates the foreign application. Then, the wrapper application terminates. The termination of the wrapper application notifies the docking application that the foreign application is terminated. The foreign application""s icon is modified to reflect its new status (e.g., ellipsis added to the icon).
When the user selects a xe2x80x9cHidexe2x80x9d operation, the wrapper application hides the foreign application""s main window. For example, the wrapper application unmaps the foreign application window when a hide operation is selected.
A wrapper application can be used to manage a single foreign application. Alternatively, a wrapper application can be used to manage multiple foreign applications (e.g., multiple instances of different foreign applications or multiple instances of the same foreign application).
With the present invention, there is no need to re-write a non-environment application to make it compatible with an environment. Using the present invention, a foreign application becomes compatible with the environment. Thus, a legacy application can be used in the environment without modifying the application.